Type switch statements
#Go言語
https://golang.org/ref/spec#Switch_statements
As with type assertions, x must be of interface type, and each non-interface type T listed in a case must implement the type of x.
Type assertion
と似た構文を用いるが、()の中身に予約語
type
を用いる点が異なる
x
はinterface型でなければならない
だから
https://go2goplay.golang.org/p/pb8uv0mf9Gf
のようなのはillegal:
T
はinterface型と仮定できないから
型のマッチングは
type identity(型の同一性)
に従って行われる。
型の代わりに
nil
をcaseに用いることができる